[Talend]tReplaceListを利用してデータを置換する

[Talend]tReplaceListを利用してデータを置換する

今回はTalendのコンポーネント「tReplaceList」を利用したデータの置換を紹介したいと思います。
Clock Icon2019.01.22

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは。DI部の大高です。

今回はTalendのコンポーネント「tReplaceList」を利用したデータの置換を紹介したいと思います。

前提条件

Talendのバージョンは「Talend Open Studio for Big Data」の「Version 7.1.1」で検証しています。

tReplaceListについて

「tReplaceList」を利用するとリストを利用して入力データの置換を行うことができます。

「tReplaceList」コンポーネントのTalend Helpページはこちらです。

tReplaceList

では、具体的に以下で解説していきます。

ジョブの説明

「tFixedFlowInput(TargetList)」でサンプルレコードを生成し、「tFixedFlowInput(LookupList)」の参照リストに一致するデータを「tReplaceList」で置換し、結果を「tLogRow」で表示するジョブとなっています。

「tFixedFlowInput(TargetList)」コンポーネントの設定

「tFixedFlowInput(TargetList)」コンポーネントでは、以下のようなサンプルレコードを3レコード生成しています。

スキーマ定義は以下の通りです。

今回はこのデータのNameを置換対象として処理をしたいと思います。このデータがメインの処理データとなるので、はじめにこのコンポーネントのメインrowを「tReplaceList」に接続しておきます。

「tFixedFlowInput(LookupList)」コンポーネントの設定

「tFixedFlowInput(LookupList)」コンポーネントでは、以下のようなレコードを2レコード生成しています。

スキーマ定義は以下の通りです。

このデータのOriginalRiderが置換前のデータ、AnotherRiderが置換後のデータになります。このデータが置換を行う際の参照リストとなるので、「tFixedFlowInput(TargetList)」のメインrowを「tReplaceList」に接続した後に、このコンポーネントのメインrowを「tReplaceList」に接続します。

そうすると、接続後には以下のようにrowのラベルに(Lookup)と表示されます。

「tReplaceList」コンポーネントの設定

「tReplaceList」コンポーネントの設定は以下の通りです。

検索カラムを参照

置換時に利用する参照リストのうち、置換前のカラムを指定します。今回はOriginalRiderAnotherRiderに置換するので、OriginalRiderを指定します。

検索カラムを参照

置換時に利用する参照リストのうち、置換後のカラムを指定します。今回はOriginalRiderAnotherRiderに置換するので、AnotherRiderを指定します。

カラムオプション

ここでは、元データの中から置換を行うカラムの設定を行います。まず「置換」のチェックボックスで置換対象を選択し、更に「大文字と小文字を区別しない」のチェックボックスで大文字と小文字を区別するかどうかを設定します。

今回は元データのNameカラムを置換したいので、このカラムにチェックを入れます。

「tLogRow」コンポーネントの設定

こちらは特に設定を行っていないので省略します。

実行結果

設定は以上です。実際にこのジョブを実行すると以下のように出力されます。

[statistics] connecting to socket on port 3577
[statistics] connected
2018|ZI-O
2017|Another Build
2016|Another Ex-Aid
[statistics] disconnected

上記で設定した通り「tFixedFlowInput(LookupList)」のOriginalRiderに一致するデータのみ、Another Riderのデータに置換されています!

まとめ

以上、「tReplaceList」コンポーネントの紹介でした。

入力データを置換用のリストデータを利用して置換したい場合に活用できるコンポーネントだと思います。

それでは!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.